package com.yonglian.management.service;

import com.yonglian.management.domain.ProjectBaseInfo;
import java.util.Optional;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

/**
 * Service Interface for managing {@link com.yonglian.management.domain.ProjectBaseInfo}.
 */
public interface ProjectBaseInfoService {
    /**
     * Save a projectBaseInfo.
     *
     * @param projectBaseInfo the entity to save.
     * @return the persisted entity.
     */
    ProjectBaseInfo save(ProjectBaseInfo projectBaseInfo);

    /**
     * Updates a projectBaseInfo.
     *
     * @param projectBaseInfo the entity to update.
     * @return the persisted entity.
     */
    ProjectBaseInfo update(ProjectBaseInfo projectBaseInfo);

    /**
     * Partially updates a projectBaseInfo.
     *
     * @param projectBaseInfo the entity to update partially.
     * @return the persisted entity.
     */
    Optional<ProjectBaseInfo> partialUpdate(ProjectBaseInfo projectBaseInfo);

    /**
     * Get all the projectBaseInfos.
     *
     * @param pageable the pagination information.
     * @return the list of entities.
     */
    Page<ProjectBaseInfo> findAll(Pageable pageable);

    /**
     * Get the "id" projectBaseInfo.
     *
     * @param id the id of the entity.
     * @return the entity.
     */
    Optional<ProjectBaseInfo> findOne(Long id);

    /**
     * Delete the "id" projectBaseInfo.
     *
     * @param id the id of the entity.
     */
    void delete(Long id);
}
